There are several classes of electronic test equipment that digitize waveform data that is later presented in one form or another on a display. Typically, the acquired sample data is digitized and then stored in a rather large memory (“deep” memory is the favorite industry term), while some subset of the acquired data stored therein is formatted and then presented in the display. It is typical to further store the formatted subset in, and display it from, a much smaller memory called a frame buffer whose addressability and data characteristics more closely match those of the display mechanism. Digital oscilloscopes, eye diagram analyzers, logic analyzer and timing analyzers come to mind immediately as generally operating in this way, although there may be others. Of these, we shall say at the outset that we are more interested in the class of equipment that digital 'scopes and eye diagram analyzers fall into, more than the class containing logic and timing analyzers. On the one hand, a user of a 'scope or eye diagram analyzer has an interest in waveform integrity, and there are few boundaries on what can go wrong with a waveform: things that shouldn't be there are, and things that should be aren't. These “things” that are of interest appear as aspects of waveform shape and can be of short duration. We might be using test equipment that has internal digital operation, but make no mistake: we are interested in characterizing the analog behavior of some signal of interest, even if that behavior is supposed to obey digital rules. In recognition of this, 'scopes and eye diagram analyzers have high effective sample rates, so that a detailed trace of analog signal behavior can be observed. On the other hand, the user of a logic or timing analyzer resigns himself or herself to the idea that the data to be captured and studied is sampled at a SUT (System Under Test) clock rate, since data signal transitions are (supposedly) constrained to occur only at specified times relative to the SUT clock. The real use of these latter items of test equipment is to characterize an aspect of system behavior that is more “program oriented” and asks questions like “How long did this routine take?” or “Did this address ever get visited?” If genuine analog signal hygiene issues such as pulse width, delay, overshoot, ringing, loading or poor rise time, etc., are suspected, one turns to the classes of test equipment we are interested in: 'scopes and their brethren that tell us about actual (think: “analog”) electrical behavior, and do so almost always as a function of time. (How else to consider the analog history of a waveform?)
All these described techniques are well and good, and can be taken as representative of such equipment for at least the last decade, perhaps almost two. Confining our interest now to the digital measurement of analog waveforms, we encounter another interesting aspect of how that class of test equipment operates. That aspect involves the “deep” acquisition memory on the one hand and the “display sized” frame buffer on the other. The disparity (which has incredible utility, to be sure!) gives rise to the notions of panning and zooming, which are ways of selecting which information in the acquisition memory is to be formed into a displayed image kept in the frame buffer. Panning is a sliding back and forth along the time axis at some degree of zoom (perhaps none at all), while the notion of zooming refers to stretching or compressing the time axis. Generally speaking, the width of the display in numbers of pixels is small compared to number of samples that can be stored in the acquisition memory, so if consecutively stored samples are displayed in consecutive pixel locations we say we are “zoomed in” all the way for “maximum magnification”. (A misnomer to be sure, since we have no honest way to actually “magnify” details we didn't sample. “Maximum magnification” is really no magnification at all, and the art of “zooming” is mostly how to “zoom out”, which is to say, compressing a segment of a waveform for display in X pixel locations that are fewer in number than the number of samples in the acquisition memory that are used to store that segment.) It is with respect to these issues that designers of digital 'scopes get creative to provide comfortable performance by the digital 'scope in areas (e.g., indicating transients shorter than a pixel's width while zoomed out) that the old analog 'scopes addressed (we won't say “solved”) with bandwidth, writing rate and persistence.
We can illustrate the general nature of these issues with a hypothetical example. Suppose you wish to view several microseconds of data along a waveform (or two) where sub-nanosecond features are possible. The sample rate is one sample every 100 ps, the acquisition memory is sufficiently deep, but the display has only 1280 pixels in the horizontal direction. Clearly, to see the entire several microsecond's worth at one time you will need to zoom out. To “zoom out” means that several consecutive samples are all represented by whatever can be displayed at a single horizontal pixel position in the display. The suspected sub-nanosecond features cannot be seen with clarity at this scale, suggesting that you may wish to zoom in some and then pan along the region of interest. Now, it is not that this strategy fails to work; it is effective. But it is not always convenient, and many times a user would prefer not zoom in and pan repeatedly, and yet be warned of instances of where lost resolution actually made a difference in the display. That is, a glitch-free slow moving signal would look just fine when viewed zoomed out, and much time could be wasted checking it while zoomed in, only to find nothing. The trick is to view, while zoomed out, a slow moving signal that does have a fast glitch and still notice that something is amiss, whereupon the user can subsequently zoom in if desired. To address this issue, test equipment designers have attempted to aid the user in drawing attention to sampled activity whose displayed trace undergoes significant abbreviation owing to the display being zoomed out. Possible techniques include intensification and blinking, with the most common being the illumination of several different pixels at different Y values, but all at the same X location. The idea is to suggest that several consecutive samples in the acquisition memory had significantly different Y values, and that the display is, at that X location, a stylized approximation. We might say that the acquisition data is too complicated for the horizontal resolution asked for.
Let us dwell on this for a moment. When a zoomed out version of a waveform is displayed and can be correctly taken as an accurate representation of the actual sampled version (which presumably accurately represents the real signal that got measured), what we might say is that the (“large”) sampled version in the acquisition memory was successfully compressed to produce the “smaller” version in the frame buffer (and in the display). The term “compression” comes to us with an existing collection of meanings. In the data processing/computer environment, compression is a technique for taking advantage of some property that is equivalent to lack of randomness (e.g., recurring groups of bit patterns) to reduce the size of a corresponding, but still exactly correct, description. An indication of successful compression is when the compressed version can be uncompressed to re-create the original version with satisfactory fidelity. The notion of “satisfactory” varies with our expectations for the application. Mechanisms that compress and uncompress data on a hard disc expect no non-recoverable single-bit errors in several billion or so bits, and even then those errors are expected to be related to the storage medium and not attributable to the compression algorithm, which in and of itself, is exact. And you would be unhappy if your bank stored account information in a compressed form that rounded amounts down to the nearest dollar (even though that type of compression might be acceptable in another environment). Yet we are more tolerant of the ways our visual perception undergoes loss of resolution—there is usually an awareness that it is happening, and thus there can be some level of confidence that we are not being completely fooled, even though we do not know exactly what is missing. The point is that compressing a waveform for visual display is not the same kind of thing as what comes to mind when we think of “data compression” techniques. Waveform compression inherently runs the risk of loss of fidelity in the compressed version. In keeping with this tolerance for visual compression, an operator of a 'scope is expected to actually view and use the compressed version of a waveform, while no one in his right mind expects someone to read a printout of the compressed version of some document!
There is something else at work here, too. We might imagine an ideal 'scope that has really narrow trace width (but still maintains adequate brightness) and that waveform compression is performed by simply squeezing a trace that ought to be fifty feet in length into six inches. This is rather like slowing the sweep speed of a high bandwidth analog 'scope way down to, say, a second for the entire sweep, and then looking for microsecond excursions in the trace. Ignoring persistence issues (it's an ideal analog 'scope . . . ) what we would need is a magnifying glass, or even a microscope. We would be presented with a scene that contained features our eyes could not resolve, rather like the trees on a distant hill side. To see the trees we reach for a telescope. We do not complain that we cannot see the trees unaided, and think of our unaided view of the distant hill side as completely correct, which, in a very practical sense, it is. Similarly, our unaided view of the trace of this (imaginary) ideal analog 'scope is also correct, even if we need help to reveal its entire content. But we look to the 'scope to give us that help: To slide a microscope along the trace of the ideal 'scope in this example is equivalent to zooming in and then panning along the entire length of the trace, which we have already decided, absent some good reason to have to do it, is an inconvenience.
Certain practical limitations prevent realization of the ideal analog 'scope used in the above example. If one were to try that example with a real 'scope the trace would overwrite itself on adjacent excursions, owing to spot size being larger than the space between the excursions: trace resolution is effectively quantized, even in an analog 'scope! And it is definitely quantized in a digital 'scope. (Twice: once when digitized, and again for rendering in a field of discrete (X, Y) pixel positions.)
In a digital 'scope, it is when the waveform compression mechanism (zooming out) does not adequately cope with features in the original waveform (e.g., transients) that we are compelled to append to the displayed trace the afore-mentioned stylized indications, meaning that at such and such a location there occurred some uncompressible feature that does not pass gracefully through the quantization process.
A useful way to think about this issue is in terms of complexity. We can say that a waveform is too complicated for waveform compression if it cannot be “successfully” compressed by some desired method. The test for “successfully” is more apt to be “do we feel lied to” upon some subsequent discovery (an all too frequent feeling among users of early digital oscilloscopes), rather than an expectation that the compressed (zoomed out) version is somehow an exact miniature (in a time axis sense) of the real and uncompressed original. Viewed in this way, the notion of waveform complexity is a result that arises from unsuccessful waveform compression, and we shall say that waveform compression can introduce waveform complexity. As we proceed it will become clear that by “complex” we mean that a result of waveform compression is too simple, and that significant aspects of the original waveform have been lost.
We should guard against the natural tendency to equate “busy” or “ugly” with the term “complexity” as we will use it herein. A long original acquisition waveform of high bandwidth may, when zoomed in, show short bursts of overshoot, ringing, and assorted spikes of noise. We will accept it as “the truth,” even though the trace is a fussy affair that we would never want to actually draw ourselves with pencil and paper. It is when we zoom out to get a nice clean waveform for that same signal, one that is simple and easy for us to draw with our pencil and paper, that we encounter complexity. The complexity arises because the nice pretty version is not really “the truth.” Note that this does NOT mean that all zoomed out versions that are “pretty” or “simple” are also complex. The original waveform might indeed be “clean,” so that considerable zooming out is possible before complexity sets in. It does suggest, however, that any waveform that has inflections, and no matter how clean, will eventually exhibit complexity if it can be zoomed out far enough. Note that we, as users of a 'scope, cannot merely look at a zoomed-out trace, in isolation, and decide if it is complex or not. Complexity is relative to what is was like before we zoomed out!
One might think an acquisition waveform could start out complex, with subsequent waveform compression producing an ambiguous result: either it stays complex, becomes more complex or becomes so abbreviated that it again appears non-complex at the expense of having lost significant detail. These are indeed legitimate consequences, save that in a digital 'scope the original acquisition record never starts out complex (at least not in the sense we are going to use the term), since digitizing is a time sequential operation that does not admit of producing two values for any one of the instances in the sequence. One might fabricate an “original” acquisition record or inherit one from another system—that was complex to begin with, but we are at present content to assume that our 'scope will never produce under its own power an original acquisition record that is complex to begin with.
To sum up this view of complexity then, actual waveforms are single-valued functions of time, and when digitized do not produce a complex acquisition record. That acquisition record might not be accurate (e.g., the sampling system had insufficient effective bandwidth), but that is a separate issue. (If your 'scope cannot digitize “the truth” then perhaps you have the wrong 'scope, or perhaps the problem at hand cannot be solved oscillographically.) A compressed version of an acquisition record, or of a subset thereof, might be complex, however, depending upon the nature of the uncompressed version, how much compression is desired, and how many horizontal pixel locations there are to display the compressed version. In this view, waveform complexity is a condition or an outcome that is introduced by waveform compression into a waveform record that is to be displayed. There may be times when there seems to be no choice other than to compress a certain amount, and suffer any complexity that results, while taking care to display the result in a way that renders the complexity without concealing it. On the other hand, there can be times when there is a choice about how much waveform compression to apply, where if we knew ahead of time that a given amount of waveform compression would produce a non-complex result but that any further compression would introduce complexity, we could chose to use the given amount of compression. In a very real sense we could claim to be using an optimum amount of waveform compression, and then perhaps adjust other system parameters to be in accordance with that optimum amount of compression.
“Decimation” is a term that has come into use to describe the regular substitution of a “decimation value” for every n consecutive samples of acquired data for use in the frame buffer (or for use in feeding data to some other process). For instance, one might simply take every nth sample in the acquisition record and discard the remaining n−1 adjacent samples. (That would be a rather drastic form of decimation, although it is possible, and is sometimes quite appropriate. There are additional and more sophisticated forms of decimation.) Decimation is clearly an attempt at waveform compression. There are times when the user's setting of the controls forces a particular “decimation factor” ‘n’ (where we replace a group of n-many samples with an associated decimation value), while there are other times where some supervisory system within the test equipment itself can automatically select it. And therein lies the problem of interest to us. Heretofore, there has been no good way to automatically select a decimation factor.
Why might an oscillographic or other waveform measurement system need a self-supplied decimation factor? While it is risky to speculate about the future uses of a new idea, there is at least one general case that can be readily identified at present. It falls into the category of “performance” and arises from the increasing prevalence of deep acquisition memories. Here are some examples.
A deep acquisition memory has certain consequences that arise from the time needed to visit all the necessary locations in the acquisition memory, which might range from about one tenth of a second to tens of seconds, depending upon the particular size of the memory and the nature of the operation(s) to be performed. Thus, even if a measurement is complete and the display is static (i.e., the ‘scope is STOP’ed) the operator may perceive a definite sluggishness in simply panning and re-zooming the display. It is possible that we could alleviate that, at least in part, if there were an indicator of how much decimation could be applied while getting the data from the acquisition memory (as a strategy to reduce the number of memory access operations and the attendant data processing time). Of course, we don't want to “over decimate” the data, lest we ruin the fidelity of the result. On the other hand, an extreme zoom out can force just that. In a general sort of way, decimation and zooming out are essentially equivalent. If we knew the safe decimation limit for a particular segment of a record in the acquisition memory, the system could issue a general warning to the user, over and above any stylized indications in the trace itself, that the amount of zoom has exceeded the safe equivalent amount of decimation, and that the resulting display is perhaps not to be trusted. This warning is perhaps similar to the old “UNCAL” annunciator that lights on an analog spectrum analyzer (e.g., the HP 140/855X series) when the settings of the various controls for selecting resolution bandwidth, scan width and scan time conspire to prevent an adequate system response to possible excursions in the input signal.
Next, it sometimes happens that the user is interested in “waveform math” that displays, say, either the sum or difference of two signals. The old analog 'scopes did that stuff in real time with high bandwidth low drift analog techniques at the vertical front end. Digital 'scopes do not ordinarily have the requisite hardware to do such pre-storage combining, whether in an analog or digital manner, and digital 'scopes are therefore obliged to perform those tasks as post-data-acquisition processing.
There are, of course, advantages to post-acquisition processing. The desired combination can be performed as an afterthought, if need be, and the resources needed to perform it need not be of the expensive high speed variety. Also, post-acquisition mathematical operations in a digital 'scope can do things that are utterly impractical in an analog 'scope, such as displaying the average of four input traces. Post-acquisition math in a digital 'scope also allows displaying some function of just a single trace, such as b2, √b, or even sin b, where “b” is a vertical input channel.
If the ‘scope is STOP’ed then there is an initial delay for the requisite processing needed to perform the waveform math, which delay might also include a change in pan location or degree of zoom. This delay is perhaps annoying, but does not necessarily involve lost information. But if the mode is RUN and the idea is to repeatedly display the latest computed results (say, as an adjustment is being made), then the 'scope can have real problems. The rate at which the adjustment occurs might far exceed the rate at which results are computed and displayed, leaving the operator in a state of exasperated frustration. In this particular example it would be desirable to reduce the time required to perform waveform arithmetic by taking careful advantage of decimation performed on the operand waveforms prior to the operation itself. The general case is that we should like to find a way to subject a waveform to a variable degree of decimation and then use the decimated outcome as a substitute for the original whenever it is safe and advantageous to do so, say, for panning and zooming as well as for waveform arithmetic.
So what we need is a way to decide how much decimation a waveform is amenable to, without introducing a disagreeable loss of fidelity. This is not a complete cure for all ills, as it still won't enable us to put two gallons' worth of information in a one gallon display without something being lost (although it might help alert us to the loss). It can, however, allow us to confidently decimate the contents of a ten gallon acquisition memory to appear in the one gallon display as if they were really from a matching one gallon acquisition memory, whenever: (a) the 'scope settings require it; and, (b) the decimation results in “successful” waveform compression.
The decimation mechanism itself is philosophically easy to implement, and in its simplest form amounts to a scheme that increments consecutive addresses for the acquisition record by amounts larger than one, taking the addressed values and ignoring the rest. Such a direct scheme is perhaps too simple, however, as it complicates or even prevents the task of satisfactorily rendering complexity when it is produced. More sophisticated digital 'scopes have instead examined the data values to be ignored and allowed them to influence the (decimation) value that will be reported in their place. There are several known ways to do this, and for future convenience in the description that follows, we now briefly introduce one general way that decimation may be implemented, and which is similar to that used in the 54830 series of digital oscilloscopes from Agilent Technologies, Inc.
The idea is to examine all the values that are to be represented by a single decimation value, and then supply, instead of only such a single decimation value in isolation, a packet containing not only one decimation value of a particular kind (or sometimes also additional decimation values of different kinds), but other relevant values describing one or more useful aspects of all the adjacent acquisition data values that were examined and then suppressed in favor of the resulting decimation value. The degree of reduction in sample values is called the decimation factor. If n-many original acquisition samples are replaced by a single decimation value, then we say the decimation factor is n. It is sometimes convenient is to refer to the n-many samples that are suppressed or replaced by the resulting decimation value that is supplied in their place. Those n-many samples occupy a “decimation sample width” in an acquisition record being decimated. We can think of decimation sample width either in terms of a number of samples (n), or as the elapsed time interval corresponding to the acquisition of those n-many samples.
There are different ways to perform decimation, and there are accordingly different types of packets, and/or different types of data within a packet. Information about type is indicated by predefined type values in one or more type fields at particular locations within the packet. Packets of different types may have otherwise different internal structures and packet lengths. Data of different types is formatted and/or interpreted in different ways. For example, a packet conveying a decimation value that is an “average value” might contain a data item that is the arithmetic mean value for the examined acquisition values, accompanied by the number of samples used to form it and the associated standard deviation. Or, a packet might include, in addition to a decimation value of whatever sort, the maximum and minimum values that occurred in that part of the acquisition record to be represented by the packet. The intent of the packet type/data type mechanism is to provide not only a collection of decimation values for use by the rendering process that creates the actual displayed image, but also some ancillary context information related to the collection, so as to make that actual displayed image more satisfactory by providing such assistance to the rendering process. As a further example, some digital oscilloscope architectures even further decimate data that has already been previously decimated. It will be appreciated that the packet type/data type technique is a valuable tool for retaining and subsequently taking advantage of useful context information in such complicated architectures, particularly when large amounts of waveform compression are contemplated. (Among other things, it helps provide a way to preserve detected complexity against subsequent inadvertent simplification: a “once complex, always complex” rule, as it were, whose intent is to prevent a displayed trace of simple and innocent appearance from being a shameless and deceitful misrepresentation.)
Whether the decimation mechanism is simple or sophisticated, the trick is to discover, for the data of interest, the boundary between suitable and unsuitable decimation factors. To be sure, the operator may compel 'scope settings that require more decimation than can be safely performed, or that force more waveform compression than can be accommodated without significant loss of fidelity. But these case are usually the extremes rather than the norm (and if the 'scope knew the limit was being exceeded it could display a warning). Additionally, there are many other times in an oscillographic waveform measurement system, especially one having a deep acquisition memory, when an informed choice for a decimation factor would improve performance for waveform math, re-zooming or panning along a displayed trace. What to do?